<template>
  <div class="row">
    <!--展示用户列表 login-用户名 html_url-用户主页地址 avatar_url-用户头像地址-->
    <div v-show="info.users.length" class="card" v-for="user in info.users" :key="user.login">
      <a :href="user.html_url" target="_blank">
        <img :src="user.avatar_url" style='width: 100px'/>
      </a>
      <p class="card-text">{{ user.login }}</p>
    </div>
    <!---欢迎词-->
    <h1 v-show="info.isFirst">Welcome!</h1>
    <!--加载中--->
    <h1 v-show="info.isLoading">Loading...</h1>
    <!---错误信息-->
    <h1 v-show="info.errMsg">Something has been wrong, errorMessage: {{ info.errMsg }}</h1>
  </div>
</template>

<script>
export default {
    name: 'List',
    data() {
        return {
            info: {
                isFirst: true, //是否初次展示
                isLoading: false, //是否加载中
                errMsg: '', //请求错误信息
                users: []
            }
        }
    },
    methods: {

    },
    mounted() {
        //通过全局事件总线传递users数据
        this.$bus.$on('updateListData', (dataObj)=>{
            console.log('我是List组件，收到了信息', dataObj)
            this.info = {...this.info, ...dataObj} //通过字面量复制并合并对象属性
        })
    },
    beforeDestroy() {
        this.$bus.$off('updateListData')
    }
}
</script>

<style scoped>
.album {
  min-height: 50rem; /* Can be removed; just added for demo purposes */
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-color: #f7f7f7;
}

.card {
  float: left;
  width: 33.333%;
  padding: .75rem;
  margin-bottom: 2rem;
  border: 1px solid #efefef;
  text-align: center;
}

.card > img {
  margin-bottom: .75rem;
  border-radius: 100px;
}

.card-text {
  font-size: 85%;
}
</style>